
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCInsert {
    public static void main(String[] args) throws SQLException {
        // JDBC需要通过以下步骤来完成开发
        // 1.创建并初始化一个数据源  ，这只是在描述数据库在哪
        DataSource dataSource = new MysqlDataSource();  //向上转型  DataSource是一个接口，不可以实例化对象，父类的引用指向了子类对象
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");  //setUrl这个方法是子类独有的，dataSource只能调用父类的方法，不可以调用子类的方法，要想调用，向下转型，转回来即可
        ((MysqlDataSource)dataSource).setUser("root");  //用户名默认都是root
        ((MysqlDataSource)dataSource).setPassword("111111");  //这是密码
        /**
         * 这个和上面的代码都可以，不过java都喜欢用上面这个形式
        MysqlDataSource mysqlDataSource = new MysqlDataSource();
        mysqlDataSource.setUrl();
         */

        // 2.和数据库服务器建立连接
        Connection connection = dataSource.getConnection();  //要选java.sql的包 是JDBC的 不是mysql的

        // 3.构造SQL语句
        //String sql = "create table student (id int, name varchar(20))";
        String sql = "insert into student (id,name) values(5,'王五')";
        String sql2 = "insert into student (id,name) values(6,'xiaoliu')";
        PreparedStatement statement = connection.prepareStatement(sql2);

        // 4.执行SQL语句
        int ret = statement.executeUpdate();   //这个是有返回值的
        System.out.println(ret);
        // 5.释放必要的资源
        statement.close();
        connection.close();
    }
}
